package com.ala4.oxcafe.service;

import com.ala4.oxcafe.boot.page.PageDomain;
import com.ala4.oxcafe.dto.ResetPasswordDTO;
import com.ala4.oxcafe.dto.UserRoleRelDTO;
import com.ala4.oxcafe.entity.MenuInfo;
import com.ala4.oxcafe.entity.UserInfo;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

/**
 * 用户信息管理
 *
 * @author PING
 * @version 1.0.0
 * @date 2025/8/12 14:21
 */
public interface UserInfoService {

    IPage<UserInfo> userInfoPage(PageDomain pageDomain, UserInfo userInfo);

    UserInfo createUserInfo(UserInfo userInfo);

    UserInfo updateUserInfo(UserInfo userInfo);

    /**
     * 重置密码
     *
     * @param resetPasswordDTO 密码DTO
     * @param checkOldPassword 是否校验旧密码
     */
    void resetPassword(ResetPasswordDTO resetPasswordDTO, boolean checkOldPassword);

    /**
     * 用户分配角色
     *
     * @param userRoleRelDTO 用户角色关联
     */
    void allocation(UserRoleRelDTO userRoleRelDTO);

    /**
     * 查询用户菜单
     *
     * @return
     */
    List<MenuInfo> userMenu();

    UserInfo userInfo(Long userId);

    /**
     * 查询用户菜单-只有菜单PATH-因为是前端管理
     *
     * @return
     */
    List<String> userMenuV2();

}
